/**
 *	The NeuroCoSA Toolkit
 *	Copyright (C) 2003-6 Stuart Meikle.
 *
 *	This is free software; you can redistribute it and/or
 *	modify it under the terms of the GNU Lesser General Public
 *	License as published by the Free Software Foundation; either
 *	version 2.1 of the License, or (at your option) any later version.
 *
 *	This library is distributed in the hope that it will be useful,
 *	but WITHOUT ANY WARRANTY; without even the implied warranty of
 *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *	Lesser General Public License for more details.
 *
 * @author	Stuart Meikle
 * @version	2006-halloween(mk2)
 * @license	LGPL
 */
package org.stumeikle.NeuroCoSA;


// Simpler now. No vesicle packages. Vesicles contain a signal strength
// too. But noooo data. 

/** 
 * All information which is propagated between synapses and neurons takes the
 * form of a vesicle plus a signal strength. Vesicle class is the base class.
 * Typically vesicles contain an ID indicating the type and a value indicating
 * a iKey number , or a iPtr to a more complex data structure. Different types
 * of vesicles are used for different purposes, for example, as signals used for
 * learning or for driving/recalling. 
 */
public class Vesicle implements Cloneable
{
	public	static	final int	NO_VESICLE	= -1;
	public 	static	final int	VESICLE 	= 0;
	public 	static	final int	LEARN_VESICLE 	= 2;
	public 	static	final int	DRIVE_VESICLE 	= 3;
	public  static	final int	SPECIAL_VESICLE = 4;
	public  static  final int	PTR_LEARN_VESICLE=8;
 	public  static  final int	PTR_DRIVE_VESICLE=9;
	public	static	final int	LOBE_TRIGGER_VESICLE = 12;

	protected	int		iVtype;
	protected	double		iSignalStrength;

	public Vesicle()
	{
	    iVtype=VESICLE;
	    iSignalStrength = 0.0;
	}
	public Vesicle(int t)
	{
	    iVtype=t;
	    iSignalStrength = 0.0;
	}

	public int	getType() 	{ return iVtype; }
	public void	setType(int t)  { iVtype = t; }	//usage discouraged
	public double	getSignalStrength() { return iSignalStrength; }
	public void	setSignalStrength(double d) { iSignalStrength=d; }
        
	public Object  clone()	throws java.lang.CloneNotSupportedException
	{ return super.clone(); }

}

